#ifndef MOVINGOBJECT_H
#define MOVINGOBJECT_H

#include "Defines.h"
#include "WorldObject.h"
#include <irrlicht.h>

struct MovementInfo
{
	core::vector3df startPos;
	core::vector3df destinationPos;
	core::vector3df moveSpeed;
	int timesMoved;
	int timesToMove;
};

class MovingObject : public WorldObject
{
	public:
	    MovementInfo m_MovementInfo;
    private: 
        f32 speedConstant;
        scene::EMD2_ANIMATION_TYPE animation;

        bool isMoving;
        bool startMoving;
    public:
    	MovingObject();
    	
	MovementInfo* getMovementInfo();
	bool getIsMoving();
	bool setStartMoving(bool passedStartMoving);
	bool getStartMoving();

	f32 getSpeedConstant();

	int setSpeedConstant(f32 newSpeedConstant);
	int setIsMoving(bool state);

        int setMovementInfo(core::vector3df startPos, core::vector3df destinationPos, core::vector3df moveSpeed, f32 timesMoved, f32 timesToMove);
        bool setMovementInfo(MovementInfo* passedMovementInfo);
        
        void setAnimation(scene::EMD2_ANIMATION_TYPE animationType, bool loopMode);
        scene::EMD2_ANIMATION_TYPE getAnimation();
        
        void stopMoving();
};

#endif
